from time import sleep
import page
from selenium import webdriver
# 导包appium
import appium.webdriver

import page


class GetDriver:

    # 1.声明变量
    __web_driver = None

    __app_driver = None

    # 2.获取driver方法
    @classmethod
    def get_web_driver(cls, url):
        # 判断diver是否为空
        if cls.__web_driver is None:
            cls.__web_driver = webdriver.Chrome()
            cls.__web_driver.maximize_window()
            cls.__web_driver.get(url)
        return cls.__web_driver

    @classmethod
    def quit_web_driver(cls):
        # 判断driver不为空
        if cls.__web_driver:
            cls.__web_driver.quit()
            cls.__web_driver = None

    # 获取App应用Driver方法
    @classmethod
    def get_app_driver(cls):
        # 判断diver是否为空
        if cls.__app_driver is None:
            # 设置启动
            desired_caps = {
                'platformName': 'Android',  # 被测手机是安卓
                'platformVersion': '11',  # 手机安卓版本
                'deviceName': 'OPPO',  # 设备名，安卓手机可以随意填写
                'appPackage': page.zo_appPackage,  # 启动APP Package名称
                'appActivity': page.zo_appActivity,  # 启动Activity名称
                'newCommandTimeout': 3000,
                'unicodeKeyboard': True,  # 使用自带输入法，输入中文时填True
                'resetKeyboard': True,  # 执行完程序恢复原来输入法
                'noReset': True,
                'automationName': 'UiAutomator2'
            }
            # 设置driver
            cls.__app_driver = appium.webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
        # 返回cls.__app_driver
        return cls.__app_driver

    @classmethod
    def quit_app_driver(cls):
        if cls.__app_driver:
            cls.__app_driver.quit()
            cls.__app_driver = None


if __name__ == '__main__':
    GetDriver.get_app_driver()
    sleep(1)
    GetDriver.quit_app_driver()

